import colorString from 'color-string';
/**
 * 为颜色增加透明度
 * - 如果颜色已有透明度值，则修改原有透明度
 * - 如果透明度超过范围，则返回原颜色值
 * - 如果参数color 不是合法的颜色值，则直接返回
 * @param {string} color 颜色
 * @param {number} value 透明度
 *
 * @returns {string} 返回大写的hex 格式颜色值
 */
function alpha(color, value) {
  if (value < 0 || value > 1) {
    return String(color).toUpperCase();
  }

  const rgb = colorString.get.rgb(color);

  if (rgb === null) {
    return null;
  }

  const [r, g, b] = rgb;
  return colorString.to.hex([r, g, b], value);
}

/**
 * 获取颜色 rgb 值，返回[r, g, b, a]
 * @param {string} color 颜色
 */
function getRgbValue(color) {
  return colorString.get.rgb(color);
}

export { alpha, getRgbValue };
